Kelas System.Collections.ObjectModel.ObservableCollection<T>

Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.

Kelas ObservableCollection<T> mewakili pengumpulan data dinamis yang menyediakan pemberitahuan saat item ditambahkan atau dihapus, atau saat seluruh daftar di-refresh.

Dalam banyak kasus, data yang Anda kerjakan adalah kumpulan objek. Misalnya, skenario umum dalam pengikatan data adalah menggunakan ItemsControl seperti ListBox, , ListViewatau TreeView untuk menampilkan kumpulan rekaman.

Anda dapat menghitung koleksi apa pun yang mengimplementasikan antarmuka IEnumerable. Namun, untuk menyiapkan pengikatan dinamis sehingga penyisipan atau penghapusan dalam koleksi memperbarui antarmuka pengguna secara otomatis, koleksi harus mengimplementasikan antarmuka INotifyCollectionChanged. Antarmuka ini mengekspos peristiwa, peristiwa yang harus dinaikkan setiap kali koleksi yang mendasar CollectionChanged berubah.

Kelas ObservableCollection<T> adalah jenis pengumpulan data yang mengimplementasikan INotifyCollectionChanged antarmuka.

Sebelum menerapkan koleksi Anda sendiri, pertimbangkan untuk menggunakan ObservableCollection<T> atau salah satu kelas koleksi yang ada, seperti List<T>, Collection<T>, dan BindingList<T>, di antara banyak lainnya. Jika Anda memiliki skenario lanjutan dan ingin menerapkan koleksi Anda sendiri, pertimbangkan untuk menggunakan IList, yang menyediakan kumpulan objek non-generik yang dapat diakses secara individual oleh indeks. Penerapan IList memberikan performa terbaik dengan mesin pengikatan data.

Catatan

Untuk sepenuhnya mendukung transfer nilai data dari mengikat objek sumber ke target pengikatan, setiap objek dalam koleksi Anda yang mendukung properti yang dapat diikat harus menerapkan mekanisme pemberitahuan yang diubah properti yang sesuai seperti INotifyPropertyChanged antarmuka.

Untuk informasi selengkapnya, lihat "Pengikatan ke Koleksi" di Gambaran Umum Pengikatan Data.

Catatan tentang penggunaan XAML

ObservableCollection<T> dapat digunakan sebagai elemen objek XAML di Windows Presentation Foundation (WPF), dalam versi 3.0 dan 3.5. Namun, penggunaan memiliki batasan yang substansial.

  • ObservableCollection<T> harus berupa elemen akar, karena x:TypeArguments atribut yang harus digunakan untuk menentukan jenis generik ObservableCollection<T> yang dibatasi hanya didukung pada elemen objek untuk elemen akar.

  • Anda harus mendeklarasikan x:Class atribut (yang memerlukan tindakan build untuk file XAML ini harus atau Page beberapa tindakan build lain yang mengkompilasi XAML).

  • ObservableCollection<T> berada di namespace dan rakitan yang awalnya tidak dipetakan ke namespace XML default. Anda harus memetakan awalan untuk namespace dan assembly, lalu menggunakan awalan tersebut pada tag elemen objek untuk ObservableCollection<T>.

Cara yang lebih mudah untuk menggunakan ObservableCollection<T> kemampuan dari XAML dalam aplikasi adalah dengan mendeklarasikan kelas koleksi kustom non-generik Anda sendiri yang berasal dari ObservableCollection<T>, dan membatasinya ke jenis tertentu. Kemudian petakan rakitan yang berisi kelas ini, dan referensikan sebagai elemen objek di XAML Anda.